﻿using System;
using Rendiciones.Web.infraestructura;
using Rendiciones.Logica.Enumeradores;
using System.Linq;

namespace Rendiciones.Web.usercontrols
{
    public partial class ctrlSesion : UserControlBase
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                Visible = false;
                if (GetPageName().Equals("IniciarSesion.aspx"))
                    return;
                var usuario = UsuarioConectado;
                if (usuario == null)
                    return;
                Visible = true;
                lblNombreUsuario.Text = "<strong>" + usuario.NombreCompleto + "</strong>";

                var rol = usuario.IdRolSeleccionado.Equals(0) ? usuario.Roles.FirstOrDefault() : usuario.Roles.FirstOrDefault(r => r.IdRol.Equals(usuario.IdRolSeleccionado));
                usuario.IdRolSeleccionado = rol.IdRol;
                lblRol.Text = "<strong>" + (rol == null ? "" : rol.Descripcion) + "</strong>";

                lblSeparador.Visible = false;
                divMenu.Visible = false;
                if (usuario.Roles.Count > 1)
                {
                    lblSeparador.Visible = true;
                    divMenu.Visible = true;
                    rptRoles.DataSource = usuario.Roles.Where(r => !r.IdRol.Equals(usuario.IdRolSeleccionado));
                    rptRoles.DataBind();
                }
            }
        }

        protected void LnkCerrarSesionClick(object sender, EventArgs e)
        {
            Session.Clear();
            Session.Abandon();
            Response.Redirect("~/Desconectado.aspx");
        }

        protected void LnkCambiarContrasenaClick(object sender, EventArgs e)
        {
            ctrlCambiarContrasena.Mostrar();
        }

        protected void RptRolesItemCommand(object source, System.Web.UI.WebControls.RepeaterCommandEventArgs e)
        {
            if (!e.CommandName.Equals("seleccionar")) return;

            var idRol = int.Parse(e.CommandArgument.ToString());
            var usuario = UsuarioConectado;
            usuario.IdRolSeleccionado = idRol;

            switch (idRol)
            {
                case 1: Response.Redirect("~/Custodio/Menu.aspx"); break;
                case 2: Response.Redirect("~/Administrador/Menu.aspx"); break;
                case 3: Response.Redirect("~/Gerente/Menu.aspx"); break;
                case 4: Response.Redirect("~/Contador/Menu.aspx"); break;
                case 5: Response.Redirect("~/Tesoreria/Menu.aspx"); break;
                case 6: Response.Redirect("~/Mantenedores/Menu.aspx"); break;
            }
        }
    }
}